The present invention relates to protocol negotiation between peer entities in a system, and more particularly to providing a master node with information about which functions are supported by a slave node in a communication system.
Systems are well known in which peer entities communicate with one another. In particular, such systems often include a device designated as a master node which communicates with a number of subordinate devices designated as slave nodes. Because individual slave devices may differ from one another, the master node must have knowledge regarding which functions (also referred to in this specification as "capabilities") are supported by each slave device in order to be able to communicate with that device. For example, in a cellular mobile telephone system different channel types provided by a cellular transceiver may require communicating at correspondingly different data rates because of the use of different communication protocols. One such system having this configuration is the link between the switching center and the base station in the European radiotelephone cellular communications system standard known as the Global System for Mobile Communications (GSM). Capabilities that a base station may or may not support in this system include: half-rate speech channels, combined signaling and control channel, data communication facilities, and different versions of the communication protocol towards the base station.
Frequently in such systems, new slave devices will either be added, or will replace existing slave devices. When this happens, the master node must obtain information telling it which functions are supported by the new slave device in order to communicate with it.
For example, in a mobile telephone network having a base station controller (BSC) which manages the operations of many base stations (BS) spread out over a large geographic area, the BSC must know which set of functions are supported by which base station. However, the supported functions may change from time to time for a number of reasons. First, new base stations may be added to the network, thus presenting an additional set of functions that the BSC must know about. Furthermore, base stations are usually controlled by software which evolves over time. As new software is released, it may allow a base station to perform previously unsupported functions. Because the software and hardware may differ from one base station to the next, a way must be provided for the BSC to obtain information about which functions are supported at which nodes.
A prior solution to this problem utilizes a predefined negotiation procedure between the master and slave devices. During this negotiation procedure, the master and slave devices utilize a predefined protocol to exchange information about which functions will be supported on the interface connecting the two. An example of this solution may be found in facsimile ("fax") machines which, prior to transmission, negotiate over which data rate to use. This solution, however, is cumbersome in that it requires undesirable overhead communications on the interface linking the master and slave devices. Furthermore, because the negotiation protocol must be defined, changes and future adaptations of capabilities are not possible without corresponding changes of possibly major proportions to the protocols being used by existing slaves. Therefore, a simpler and more flexible solution is desired.